package com.cskaoyan.javase.basic._4scanner;

import java.util.Scanner;

/**
 * 我们目前在写程序的时候，数据值都是固定的。但是实际开发中，数据值肯定是变化的。实际开发中，这些变化的数据往往都是来自于前端页面（用户输入，上传等），所以总体而言，Scanner对于Web开发并没有太大的实际作用，了解即可。
 *
 * 但是在JavaSE的学习阶段，我们没有前端和各种界面的输入信息，在单机的情况下，使用Scanner键盘录入是很不错的选择，可以提高程序的灵活性。并且在某些测试的场景中，Scanner键盘录入也有一定的用途，所以Scanner也有必要学习了解一下。
 *
 * Scanner这个单词是扫描仪的意思,在具体通过Scanner录入数据,它就表现的和扫描仪差不多
 * 输入数据时,有"扫描开始的"时候
 * 也有"扫描结束"的时候
 *
 * 那么Scanner键盘录入到底应该怎么用呢？
 * 大体上可以分为三步走：
 * 导包 （IDEA有自动导包功能，但是不要认为没有这一步）
 * import java.util.Scanner;
 *
 * 创建对象
 * Scanner sc = new Scanner(System.in);
 *
 * 接收从键盘录入的数据
 * int x = sc.nextInt();
 *
 * Scanner在做键盘录入时,调用的方法比如nextInt等,都是阻塞方法,必须要等待用户完成键盘录入后,才会继续执行代码
 * 如果用户不输入,代码不能继续执行
 * 为了避免这种互相等待的情况发生,做键盘录入时,一定要给出提示语句.不给提示语句,是不好的习惯.
 *
 * 其次,Scanner在做键盘录入时,不同的方法所能接收的值的数据类型不同,不要乱输入,否者会引发程序报错.
 *      抛出异常,终止程序执行(后面会讲)
 *
 * @since 17:44
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        /*
            小技巧
            在写赋值语句时,我们推荐先写右边的表达式或值
            然后用快捷键自动生成左边
            两种方式:
                ctrl + alt + v 自动补全赋值语句
                在表达式后面写.var 然后回车
            但是不推荐手动从左往右写
         */
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个int整数:");
        int num = sc.nextInt();
        System.out.println(num);

        System.out.println("hello world!");

    }
}
